package com.sg.dto.biz.app.res;

import com.sg.dto.base.app.common.CycleTypeDto;
import com.sg.dto.base.app.common.StandardDataDto;
import com.sg.dto.biz.app.common;
import com.sg.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @desc ImplementAccessParameterBizFieldRespDto
 * @使用场景
 */
@Data
public class ImplementAccessParameterBizFieldRespDto
        extends BaseDto
        implements Serializable {

    /**
     * 数量型指标当无实际值标记 TRUE:是 FALSE:否
     */
    @ApiModelProperty("数量型指标当无实际值标记")
    private String quantityObjectiveNoValue;
    /**
     * 冗余是否有目标值 TRUE:是 FALSE:否
     */
    @ApiModelProperty("冗余是否有目标值")
    private String isUseTargetValue;
    /**
     * 自定义字段
     */
    @ApiModelProperty("自定义字段")
    private String customField;
    /**
     * 是否开启主观评分 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否开启主观评分")
    private String isSubjectiveScoring;
    /**
     * 部门ID
     */
    @ApiModelProperty("部门ID")
    private String deptId;
    /**
     * 批次ID
     */
    @ApiModelProperty("批次ID")
    private String batchId;

    /**
     * 批次标识
     */
    @ApiModelProperty("批次标识")
    private String batchCode;
    /**
     * 是否首次批次 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否首次批次")
    private String isFirst;
    /**
     * 层级
     */
    @ApiModelProperty("层级")
    private Long levelNumber;
    /**
     * 与父级责任主体是否相同 TRUE:是 FALSE:否
     */
    @ApiModelProperty("与父级责任主体是否相同")
    private String andParentBodyIsIdentical;
    /**
     * 主体生命周期 CURRENTLY_VALID:当前有效 EDITING:正在编辑 ARCHIVING:历史存档
     */
    @ApiModelProperty("主体生命周期")
    private String subjectLifeCycle;
    /**
     * 是否存档 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否存档")
    private String isArchive;
    /**
     * 管理类型 NORMAL_OPERTION:正常操作流程 FIRST_ROLLBACK_ADJUST:首次回退调整 FOLLOWUP_ROLLBACK_ADJUST:后续回退调整 SUPER_ROLLBACK_ADJUST:超级回退调整
     */
    @ApiModelProperty("管理类型")
    private String mgtType;

    /**
     * 是否超级管理 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否超级管理")
    private String isSuperMgt;
    /**
     * 传输数值（整数型）
     */
    @ApiModelProperty("传输数值（整数型）")
    private Long outputNum;
    /**
     * 自定义字段1
     */
    @ApiModelProperty("自定义字段1")
    private String customField1;
    /**
     * 自定义字段2
     */
    @ApiModelProperty("自定义字段2")
    private String customField2;
    /**
     * 自定义字段3
     */
    @ApiModelProperty("自定义字段3")
    private String customField3;
    /**
     * 父子中周期数据模型 FATHER_MID_SUB_SAME:父子中同体 FATHER_MID_SAME:父中同体 FATHER_SUB_SAME:父子同体 FATHER_MID_SUB_DIFF:父子中独立
     */
    @ApiModelProperty("父子中周期数据模型")
    private String fatherMidSubCycleDataModel;
    /**
     * 就职单位对象实例ID
     */
    @ApiModelProperty("就职单位对象实例ID")
    private String entityId;

    /**
     * 中期周期类型
     */
    @ApiModelProperty("中期周期类型")
    private String midCycleType;

    /**
     * 子周期周期类型
     */
    @ApiModelProperty("子周期周期类型")
    private String subcycleType;

    @ApiModelProperty("执行周期阶段列表")
    private List<String> executeCycleStageList = new ArrayList<>();

    @ApiModelProperty("指标列表 ")
    List<String> targetObjList = new ArrayList<>();
    /**
     * 执行周期阶段ID
     */
    @ApiModelProperty("执行周期阶段ID")
    private String executeCycleStageId;

    /**
     * 被评对象目标周期ID
     */
    @ApiModelProperty("被评对象目标周期ID")
    private String evaObjTargetCycleId;

    /**
     * 被评对象目标周期标识
     */
    @ApiModelProperty("被评对象目标周期标识")
    private String evaObjTargetCycleCode;

    /**
     * 目标周期简称
     */
    @ApiModelProperty("目标周期简称")
    private String cyclelAlias;

    /**
     * 周期名称
     */
    @ApiModelProperty("周期名称")
    private String cycleStandardName;

    /**
     * 填报开始时间
     */
    @ApiModelProperty("填报开始时间")
    private Date fillStartTime;
    /**
     * 进入步骤房间值
     */
    @ApiModelProperty("进入步骤房间值")
    private String stepRoomValue;
    /**
     * 高/中/基层操作场景 TOP:高层 MID:中层 BASIC:基层
     */
    @ApiModelProperty("高/中/基层操作场景")
    private String batchOperateScene;
    /**
     * 是否子周期 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否子周期")
    private String isSubCycle;
    /**
     * 是否中期 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否中期")
    private String isMetaphase;
    /**
     * 是否父周期 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否父周期")
    private String isParentCycle;
    @ApiModelProperty("周期阶段资料列表 ")
    List<CycleStageDataDto> cycleStageDataList = new ArrayList<>();
    /**
     * 指标汇报对象设置项编码 PRIMARY_TASK:一级建设任务 SECONDARY_TASK:二级建设任务 PRIMARY_OBSERVATION_POINT:二级以下建设任务或一级观测点 SECONDARY_OBSERVATION_POINT:二级观测点 OTHER_OBSERVATION_POINT:二级以下观测点
     */
    @ApiModelProperty("指标汇报对象设置项编码")
    private String reportObjectSetCode;

    /**
     * 冗余一级目标分类ID
     */
    @ApiModelProperty("冗余一级目标分类ID")
    private String rootTargetCategoryId;
    /**
     * 自定义字段4
     */
    @ApiModelProperty("自定义字段4")
    private String customField4;
    /**
     * 是否已完成 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否已完成")
    private String isComplete;
    /**
     * 父子中周期类型 PARENT_CYCLE:父周期 SUB_CYCLE:子周期 MID_CYCLE:中期
     */
    @ApiModelProperty("父子中周期类型")
    private String parentSubMidCycleType;
    /**
     * 父周期ID
     */
    @ApiModelProperty("父周期ID")
    private String fatherCycleId;

    /**
     * 中期周期ID
     */
    @ApiModelProperty("中期周期ID")
    private String midCycleId;

    /**
     * 子周期ID
     */
    @ApiModelProperty("子周期ID")
    private String subCycleId;

    /**
     * 周期ID
     */
    @ApiModelProperty("周期ID")
    private String cycleId;

    /**
     * 通用编码标识
     */
    @ApiModelProperty("通用编码标识")
    private String comCode;

    @ApiModelProperty("虚拟成员部门列表 ")
    List<String> virtualOrgMemberDeptList = new ArrayList<>();

    /**
     * 是否冗余中期权重 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否冗余中期权重")
    private String isRedundantMidCycle;
    /**
     * 是否过程周期阶段 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否过程周期阶段")
    private String isProcessCycleStage;

    /**
     * 是否自定义执行周期阶段 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否自定义执行周期阶段")
    private String isDefinedExecuteCycleStage;

    /**
     * 是否末级周期 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否末级周期")
    private String isLastCycle;
    /**
     * 计算数据来源 MANUAL_FILLING:人工填报 SYSTEM_DOCKING:系统对接
     */
    @ApiModelProperty("计算数据来源")
    private String calculateDataSource;
    /**
     * 是否末级指标 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否末级指标")
    private String isLastObjective;
    /**
     * 创建人就职记录ID
     */
    @ApiModelProperty("创建人就职记录ID ")
    private String createInductionId;

    /**
     * 创建于空间ID
     */
    @ApiModelProperty("创建于空间ID")
    private String spaceId;

    /**
     * 创建于联盟应用ID
     */
    @ApiModelProperty("创建于联盟应用ID")
    private String appId;
    /**
     * 系统对接计算点 CALCULATE:计算实际值 SCORE_AFTER_CALCULATE:计算实际值得分
     */
    @ApiModelProperty("系统对接计算点")
    private String systemDocking;
    @ApiModelProperty("检查项标识列表 ")
    List<String> checkItemCodeList = new ArrayList<>();
    /**
     * 过程中期权重
     */
    @ApiModelProperty("过程中期权重")
    private String processMidWeight;

    /**
     * 汇报平均分权重
     */
    @ApiModelProperty("汇报平均分权重")
    private String reportAvgScoreWeight;

    /**
     * 下级KR权重
     */
    @ApiModelProperty("下级KR权重")
    private String krWeight;

    /**
     * 过程汇报得分权重
     */
    @ApiModelProperty("过程汇报得分权重")
    private String processReportScoreWeight;

    /**
     * 主客观得分权重
     */
    @ApiModelProperty("主客观得分权重")
    private String subjectiveAndObjectiveScoreWeight;

    /**
     * 本级得分权重
     */
    @ApiModelProperty("本级得分权重")
    private String localLevelScoreWeight;

    /**
     * 下级得分权重
     */
    @ApiModelProperty("下级得分权重")
    private String lowerLevelScoreWeight;

    /**
     * 中期汇报得分权重
     */
    @ApiModelProperty("中期汇报得分权重")
    private String midReportWeight;
    /**
     * 对象名称
     */
    @ApiModelProperty("对象名称")
    private String objectName;
    /**
     * 排序
     */
    @ApiModelProperty("排序")
    private Long orderNumber;
    @ApiModelProperty("周期类型列表")
    private List<CycleTypeDto> cycleTypeList = new ArrayList<>();
    /**
     * OKR目标属性 OBJECTIVES:目标O KEY_RESULTS:关键成果KR
     */
    @ApiModelProperty("OKR目标属性")
    private String indicatorKind;
    @ApiModelProperty("向右周期范围列表")
    private List<RightCycleScopeDto> rightCycleScopeList = new ArrayList<>();
    /**
     * 周期类型标识
     */
    @ApiModelProperty("周期类型标识")
    private String cycleTypeCode;
    /**
     * 子周期被评对象目标周期ID
     */
    @ApiModelProperty("子周期被评对象目标周期ID")
    private String subEvaObjTargetCycleId;
    /**
     * 存档类型 NOT_ARCHIVE:未归档 TOBE_ARCHIVING:想归档 ARCHIVED:已归档
     */
    @ApiModelProperty("存档类型")
    private String archivngType;
    /**
     * 末级周期目标周期ID
     */
    @ApiModelProperty("末级周期目标周期ID")
    private String lastEvaObjTargetCycleId;

    /**
     * 末级周期周期ID
     */
    @ApiModelProperty("末级周期周期ID")
    private String lastCycleId;
    /**
     * 主客观得分（数值）
     */
    @ApiModelProperty("主客观得分（数值）")
    private Double subAndObjScore;
    /**
     * 父周期被评对象目标周期ID
     */
    @ApiModelProperty("父周期被评对象目标周期ID")
    private String fatherEvaObjTargetCycleId;

    /**
     * 中期被评对象目标周期ID
     */
    @ApiModelProperty("中期被评对象目标周期ID")
    private String midEvaObjTargetCycleId;
    /**
     * 操作时间
     */
    @ApiModelProperty("操作时间")
    private Date operateTime;
    /**
     * 是否 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否")
    private String tureOrFalse;
    /**
     * 是否实际验收周期 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否实际验收周期")
    private String isActualReceptionCycle;
    /**
     * 冗余指标业务类型 NUMBER_GROWTH:数量增长型 NUMBER_DECLINE:数量降幅型 PERCENTAGE_GROWTH:百分比增长型 PERCENTAGE_DECLINE:百分比降幅型 PROGRESS:进度型 RATIO_GROWTH:比率增长型 RATIO_DECLINE:比率降幅型 SUBJECTIVE_QUALITATIVE:主观定性
     */
    @ApiModelProperty("冗余指标业务类型")
    private String targetValueType;
    /**
     * 是否计划验收周期 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否计划验收周期")
    private String isPlanReceptionCycle;
    /**
     * 是否开启预算 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否开启预算")
    private String isUseBudget;
    @ApiModelProperty("汇报管理模式菜单列表")
    private List<ReportMgtModelMenusDto> reportMgtModelMenusList = new ArrayList<>();
    @ApiModelProperty("目标内容列表")
    private List<TargetContentDto> targetContentList = new ArrayList<>();
    /**
     * 通用数值字段（整数型）
     */
    @ApiModelProperty("通用数值字段（整数型）")
    private Long comNumField;
    @ApiModelProperty("下级汇报任务列表")
    private List<SubReportingTaskDto> subReportingTaskList = new ArrayList<>();
    /**
     * 主观得分权重
     */
    @ApiModelProperty("主观得分权重")
    private String subjectiveScoreWeight;

    /**
     * 客观得分权重
     */
    @ApiModelProperty("客观得分权重")
    private String objectiveScoreWeight;

    /**
     * 下级O权重
     */
    @ApiModelProperty("下级O权重")
    private String oWeight;

    /**
     * 审核汇报
     */
    @ApiModelProperty("审核汇报")
    private String checkTaskReport;
    @ApiModelProperty("标准数据列表")
    private List<StandardDataDto> standardDataList = new ArrayList<>();
    @ApiModelProperty("被评对象目标周期列表 ")
    List<String> evaObjTargetCycleList = new ArrayList<>();
    /**
     * 是否统一管理 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否统一管理")
    private String isUnifiedMgt;
    /**
     * 冗余内容表类型编码 OMS_TARGET_CYCLE:目标周期表 OMS_EVALUATION_OBJECT_TARGET_CYCLE:被评对象目标周期表 OMS_TARGET:目标表 OMS_TARGET_CATEGORY:目标分类表 OMS_TARGET_OBJECTIVE:指标表 OMS_TASK:任务表 OMS_ORG_INDUCTION_RECORD:就职记录表 OMS_FRAMEWORK_ORIGINAL_ROLE_MEMBER:身份人员表 OMS_ORG_DEPT:部门表 OMS_BASE_HOST:宿主表 OMS_FRAMEWORK_SPACE:空间表 OMS_TSPE_CYCLE_STAGE_DATA:周期阶段资料记录 OMS_EVALUATION_TEMPLATE:评价模板 OMS_EVALUATION_PORTRAIT:评价画像表 OMS_ORG_POSITION:职务表 OMS_VIRTUAL_ORG_MEMBER:虚拟组织成员表 OMS_PLANNING:规划资料表 OMS_FRAMEWORK_USERS:个人账号表 OMS_EXECUTE_CYCLE_STAGE:执行周期阶段表 OMS_CONF_SCHEME:配置方案表 OMS_EVA_OBJ_TARGET_CYCLE_OSET:被评对象目标周期目标设置表 OMS_EVA_OBJ_TARGET_CYCLE_WEIGHT_SET:被评对象目标周期权重设置表 OMS_NOTICE:通知公告表 OMS_CYCLE:周期表 OMS_EVALUATION_SUBJECT:评价主题表 OMS_BIZ_APP_BATCH:业务应用批次表
     */
    @ApiModelProperty("冗余内容表类型编码")
    private String tableTypeCode;
    /**
     * 是否开启自定义汇报 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否开启自定义汇报")
    private String isOpenCustomReport;
    /**
     * 父子周期是否同体 TRUE:是 FALSE:否
     */
    @ApiModelProperty("父子周期是否同体")
    private String workCycleIsSame;
    /**
     * 过程汇报得分_过程中期权重
     */
    @ApiModelProperty("过程汇报得分_过程中期权重")
    private Double processReportScoreProMidWeight;

    /**
     * 过程汇报得分_汇报平均分权重
     */
    @ApiModelProperty("过程汇报得分_汇报平均分权重")
    private Double processReportScoreAvgWeight;

    /**
     * 过程汇报得分_下级KR权重
     */
    @ApiModelProperty("过程汇报得分_下级KR权重")
    private Double processReportScoreKrWeight;

    /**
     * 汇报得分_过程汇报得分权重
     */
    @ApiModelProperty("汇报得分_过程汇报得分权重")
    private Double reportScoreProcessWeight;

    /**
     * 汇报得分_主客观得分权重
     */
    @ApiModelProperty("汇报得分_主客观得分权重")
    private Double reportScoreSubAndObjWeight;

    /**
     * 实际得分_本级汇报得分权重
     */
    @ApiModelProperty("实际得分_本级汇报得分权重")
    private Double actualScoreLocalLevelWeight;

    /**
     * 实际得分_下级汇报得分权重
     */
    @ApiModelProperty("实际得分_下级汇报得分权重")
    private Double actualScoreLowerLevelWeight;

    /**
     * 过程汇报得分_中期得分权重
     */
    @ApiModelProperty("过程汇报得分_中期得分权重")
    private Double processReportScoreMidWeight;
    /**
     * 部门排序
     */
    @ApiModelProperty("部门排序")
    private Long dutyBodyOrderNum;

    /**
     * 个人排序
     */
    @ApiModelProperty("个人排序")
    private Long personalOrderNumber;

    /**
     * 权重排序
     */
    @ApiModelProperty("权重排序")
    private Long weightOrderNumber;
    /**
     * 目标内容编号
     */
    @ApiModelProperty("目标内容编号")
    private String targetContentNumber;

}
